              
\chapter{Project Plan}

\section{Team Responsibilities}
We each took responsibility for approximately half of the project. Jared was primarily responsible for 
the scanner, parser and code generation. Michael was primarily responsible for the Java libraries, test 
suite and documentation. However, since we were a two man team, there was significant overlap and we each
had a hand in writing every element of the project. Therefore, we have both signed all code files in the 
project.

\section{Programming Conventions}

\subsection{Java}
The benefit of compiling to Java is that we could make use of the object-oriented features to limit the 
amount of redundant code that needed to be written. The java libraries provide all of the functionality 
for the RT’s record and table objects. Since records are viewed by the language as singleton tables, we 
were able to write Record.java as a subclass of Table.java. Similarly, we were able to take this approach 
for UDTs and Compound Types. Similarly, we were able to take advantage of Java’s interface mechanism to 
standardize predicates and map statements.  As a result, the Java source generated by the RT compiler is 
concise and consists primarily of function calls to the RT libraries.

\subsection{OCaml}
OCaml code with meaningful variable and function names is typically very readable. Thus, throughout 
the project, commenting is limited to wherever it is completely necessary. We also attempted to write 
wrapper functions for more complex function calls so that their meaning and intent would be more clear 
to the reader. 


\section{Time Line}
\begin{table}[here]
\begin{tabular} {c c}
\textbf{Sept. 28} & La Mesa original proposal handed in \\
\textbf{Oct. 26} &  La Mesa original LRM handed in\\
\textbf{Nov. 1} & La Mesa original scanner and parser started \\
\textbf{Dec. 19} & Code generation started \\
\textbf{Dec. 22} & Original due date, 75\% of original La Mesa functionality implemented \\
\textbf{Dec. 24} & Original La Mesa functionality completed \\
\textbf{Jan. 2} & Full RT functionality completed \\
\textbf{Jan. 4} & Documentation completed 
\end{tabular}
\end{table}

